package server.processors;

import server.NetworkMediator;
import server.ServerStateMediator;
import common.Sendable;

public abstract class Processor implements Runnable {

	private NetworkMediator network;
	private ServerStateMediator server;
	
	protected Processor(){}
	
	protected Processor( NetworkMediator network, ServerStateMediator server ) {
		this.network = network;
		this.server = server;
	}
	
	public abstract boolean isInterestedIn( Sendable s );
	
	public NetworkMediator getNetwork() { return network; }
	public ServerStateMediator getServer() { return server; }
	
	public abstract Processor getInstanceOf( NetworkMediator mediator, ServerStateMediator server );
	
}
